.class public Lroboguice/config/RoboModule;
.super Lcom/google/inject/AbstractModule;
.source "RoboModule.java"


# instance fields
.field protected a:Lroboguice/inject/ContextScope;

.field protected b:Lcom/google/inject/Provider;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lcom/google/inject/Provider",
            "<",
            "Landroid/content/Context;",
            ">;"
        }
    .end annotation
.end field

.field protected c:Lcom/google/inject/Provider;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lcom/google/inject/Provider",
            "<",
            "Landroid/content/Context;",
            ">;"
        }
    .end annotation
.end field

.field protected d:Lroboguice/inject/ResourceListener;

.field protected e:Lroboguice/inject/ViewListener;

.field protected f:Lroboguice/inject/ExtrasListener;

.field protected g:Lroboguice/inject/PreferenceListener;

.field protected h:Landroid/app/Application;


# direct methods
.method public constructor <init>(Lroboguice/inject/ContextScope;Lcom/google/inject/Provider;Lcom/google/inject/Provider;Lroboguice/inject/ResourceListener;Lroboguice/inject/ViewListener;Lroboguice/inject/ExtrasListener;Lroboguice/inject/PreferenceListener;Landroid/app/Application;)V
    .locals 0
    .parameter
    .parameter
    .parameter
    .parameter
    .parameter
    .parameter
    .parameter
    .parameter
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lroboguice/inject/ContextScope;",
            "Lcom/google/inject/Provider",
            "<",
            "Landroid/content/Context;",
            ">;",
            "Lcom/google/inject/Provider",
            "<",
            "Landroid/content/Context;",
            ">;",
            "Lroboguice/inject/ResourceListener;",
            "Lroboguice/inject/ViewListener;",
            "Lroboguice/inject/ExtrasListener;",
            "Lroboguice/inject/PreferenceListener;",
            "Landroid/app/Application;",
            ")V"
        }
    .end annotation

    .prologue
    .line 51
    invoke-direct {p0}, Lcom/google/inject/AbstractModule;-><init>()V

    .line 52
    iput-object p1, p0, Lroboguice/config/RoboModule;->a:Lroboguice/inject/ContextScope;

    .line 53
    iput-object p2, p0, Lroboguice/config/RoboModule;->b:Lcom/google/inject/Provider;

    .line 54
    iput-object p3, p0, Lroboguice/config/RoboModule;->c:Lcom/google/inject/Provider;

    .line 55
    iput-object p4, p0, Lroboguice/config/RoboModule;->d:Lroboguice/inject/ResourceListener;

    .line 56
    iput-object p5, p0, Lroboguice/config/RoboModule;->e:Lroboguice/inject/ViewListener;

    .line 57
    iput-object p6, p0, Lroboguice/config/RoboModule;->f:Lroboguice/inject/ExtrasListener;

    .line 58
    iput-object p7, p0, Lroboguice/config/RoboModule;->g:Lroboguice/inject/PreferenceListener;

    .line 59
    iput-object p8, p0, Lroboguice/config/RoboModule;->h:Landroid/app/Application;

    .line 60
    return-void
.end method


# virtual methods
.method protected configure()V
    .locals 5

    .prologue
    const/4 v4, 0x1

    const/4 v3, 0x0

    .line 74
    const-class v0, Lroboguice/inject/ContextScoped;

    iget-object v1, p0, Lroboguice/config/RoboModule;->a:Lroboguice/inject/ContextScope;

    invoke-virtual {p0, v0, v1}, Lroboguice/config/RoboModule;->bindScope(Ljava/lang/Class;Lcom/google/inject/Scope;)V

    .line 75
    const-class v0, Lroboguice/inject/ContextScope;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    iget-object v1, p0, Lroboguice/config/RoboModule;->a:Lroboguice/inject/ContextScope;

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toInstance(Ljava/lang/Object;)V

    .line 76
    const-class v0, Landroid/content/Context;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    iget-object v1, p0, Lroboguice/config/RoboModule;->b:Lcom/google/inject/Provider;

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    move-result-object v0

    const-class v1, Lroboguice/inject/ContextScoped;

    invoke-interface {v0, v1}, Lcom/google/inject/binder/ScopedBindingBuilder;->in(Ljava/lang/Class;)V

    .line 77
    const-class v0, Landroid/app/Activity;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    const-class v1, Lroboguice/inject/ActivityProvider;

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Ljava/lang/Class;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 78
    const-class v0, Landroid/content/res/AssetManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    const-class v1, Lroboguice/inject/AssetManagerProvider;

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Ljava/lang/Class;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 81
    const-class v0, Landroid/content/SharedPreferences;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    const-class v1, Lroboguice/inject/SharedPreferencesProvider;

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Ljava/lang/Class;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 82
    const-class v0, Landroid/content/res/Resources;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    const-class v1, Lroboguice/inject/ResourcesProvider;

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Ljava/lang/Class;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 83
    const-class v0, Landroid/content/ContentResolver;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    const-class v1, Lroboguice/inject/ContentResolverProvider;

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Ljava/lang/Class;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 85
    iget-object v0, p0, Lroboguice/config/RoboModule;->h:Landroid/app/Application;

    invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v0

    :goto_0
    if-eqz v0, :cond_0

    const-class v1, Landroid/app/Application;

    invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v1

    if-eqz v1, :cond_0

    .line 86
    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v1

    iget-object v2, p0, Lroboguice/config/RoboModule;->h:Landroid/app/Application;

    invoke-interface {v1, v2}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toInstance(Ljava/lang/Object;)V

    .line 85
    invoke-virtual {v0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;

    move-result-object v0

    goto :goto_0

    .line 90
    :cond_0
    const-class v0, Landroid/location/LocationManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "location"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 91
    const-class v0, Landroid/view/WindowManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "window"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 92
    const-class v0, Landroid/view/LayoutInflater;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "layout_inflater"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 93
    const-class v0, Landroid/app/ActivityManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "activity"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 94
    const-class v0, Landroid/os/PowerManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "power"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 95
    const-class v0, Landroid/app/AlarmManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "alarm"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 96
    const-class v0, Landroid/app/NotificationManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "notification"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 97
    const-class v0, Landroid/app/KeyguardManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "keyguard"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 98
    const-class v0, Landroid/app/SearchManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "search"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 99
    const-class v0, Landroid/os/Vibrator;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "vibrator"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 100
    const-class v0, Landroid/net/ConnectivityManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "connectivity"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 101
    const-class v0, Landroid/net/wifi/WifiManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "wifi"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 102
    const-class v0, Landroid/view/inputmethod/InputMethodManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "input_method"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 103
    const-class v0, Landroid/hardware/SensorManager;

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->bind(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;

    move-result-object v0

    new-instance v1, Lroboguice/inject/SystemServiceProvider;

    const-string v2, "sensor"

    invoke-direct {v1, v2}, Lroboguice/inject/SystemServiceProvider;-><init>(Ljava/lang/String;)V

    invoke-interface {v0, v1}, Lcom/google/inject/binder/AnnotatedBindingBuilder;->toProvider(Lcom/google/inject/Provider;)Lcom/google/inject/binder/ScopedBindingBuilder;

    .line 107
    invoke-static {}, Lcom/google/inject/matcher/Matchers;->any()Lcom/google/inject/matcher/Matcher;

    move-result-object v0

    iget-object v1, p0, Lroboguice/config/RoboModule;->d:Lroboguice/inject/ResourceListener;

    invoke-virtual {p0, v0, v1}, Lroboguice/config/RoboModule;->bindListener(Lcom/google/inject/matcher/Matcher;Lcom/google/inject/spi/TypeListener;)V

    .line 108
    invoke-static {}, Lcom/google/inject/matcher/Matchers;->any()Lcom/google/inject/matcher/Matcher;

    move-result-object v0

    iget-object v1, p0, Lroboguice/config/RoboModule;->f:Lroboguice/inject/ExtrasListener;

    invoke-virtual {p0, v0, v1}, Lroboguice/config/RoboModule;->bindListener(Lcom/google/inject/matcher/Matcher;Lcom/google/inject/spi/TypeListener;)V

    .line 109
    invoke-static {}, Lcom/google/inject/matcher/Matchers;->any()Lcom/google/inject/matcher/Matcher;

    move-result-object v0

    iget-object v1, p0, Lroboguice/config/RoboModule;->e:Lroboguice/inject/ViewListener;

    invoke-virtual {p0, v0, v1}, Lroboguice/config/RoboModule;->bindListener(Lcom/google/inject/matcher/Matcher;Lcom/google/inject/spi/TypeListener;)V

    .line 111
    iget-object v0, p0, Lroboguice/config/RoboModule;->g:Lroboguice/inject/PreferenceListener;

    if-eqz v0, :cond_1

    .line 112
    invoke-static {}, Lcom/google/inject/matcher/Matchers;->any()Lcom/google/inject/matcher/Matcher;

    move-result-object v0

    iget-object v1, p0, Lroboguice/config/RoboModule;->g:Lroboguice/inject/PreferenceListener;

    invoke-virtual {p0, v0, v1}, Lroboguice/config/RoboModule;->bindListener(Lcom/google/inject/matcher/Matcher;Lcom/google/inject/spi/TypeListener;)V

    .line 114
    :cond_1
    new-array v0, v4, [Ljava/lang/Class;

    const-class v1, Lroboguice/util/Ln;

    aput-object v1, v0, v3

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->requestStaticInjection([Ljava/lang/Class;)V

    .line 115
    new-array v0, v4, [Ljava/lang/Class;

    const-class v1, Lroboguice/util/RoboThread;

    aput-object v1, v0, v3

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->requestStaticInjection([Ljava/lang/Class;)V

    .line 116
    new-array v0, v4, [Ljava/lang/Class;

    const-class v1, Lroboguice/util/RoboAsyncTask;

    aput-object v1, v0, v3

    invoke-virtual {p0, v0}, Lroboguice/config/RoboModule;->requestStaticInjection([Ljava/lang/Class;)V

    .line 117
    return-void
.end method
